cmake_minimum_required (VERSION 3.20)

########################################
# mimic GenTL producer detection test  #
########################################

file(GLOB TEST_FILES "${CMAKE_CURRENT_SOURCE_DIR}/test*.cpp")

foreach(TEST_FILE ${TEST_FILES})
  ################### Variables ####################
  # Change if you want modify path or other values #
  ##################################################
  cmake_path(GET TEST_FILE STEM FILE_NAME)
  
  set(TEST_NAME ${PROJECT_NAME}_Configure_${FILE_NAME})
  set(TEST_INCLUDE_PATH .)

  message("setup test ${TEST_NAME}")

  ####################### Target #######################
  #   Define target library and configure properties   #
  ######################################################   
  add_executable(${TEST_NAME}
    ${TEST_FILE}
  )

  target_link_libraries(${TEST_NAME} PUBLIC ${PROJECT_NAME} ${CMAKE_DL_LIBS} GTest::gtest_main)
  target_include_directories(${TEST_NAME} PRIVATE ${TEST_INCLUDE_PATH})
  add_test(t_${TEST_NAME} ${TEST_NAME})

  # tests using the GenAPI library
  message("genapi_RUNTIME_DIR: ${genapi_RUNTIME_DIR}")
  set_tests_properties(t_${TEST_NAME} PROPERTIES ENVIRONMENT "PATH=${genapi_RUNTIME_DIR};$ENV{PATH}")

  ############# Pre/Post Build #############
  #  Pre- and/or Post-Build commands       #
  ##########################################
  # copy output from mimic library
  add_custom_command(TARGET ${TEST_NAME}
    POST_BUILD
    COMMAND ${CMAKE_COMMAND} -E copy_directory ${genapi_RUNTIME_DIR} $<TARGET_FILE_DIR:${TEST_NAME}>
  )

endforeach()
